<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Object.defineproperty</title>
    <script type="text/javaScript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    
    <script type="text/javaScript">
        let number = 18
        let person = {
            name:'zhangsan',
            sex:'boy'
        }

        Object.defineProperty(person,'age',{
            // value:18,
            // enumerable:true,  //控制属性是否可以枚举，默认值为false
            // writable:true,   //控制属性是否可以被修改，默认值为false
            // configurable:true  //控制属性是否可以被删除，默认值false

            //当有人读取age属性时，get函数就会被调用，且返回值就是age的值
            get(){
                console.log("有人读取age属性了")
                
                return number
            },

            //当有人修改age属性时，set函数就会被调用，且返回的值是
            set(value){
                console.log("有人修改了age属性了,且值是，",value)
                number = value
                
            }
        })
        // console.log(person);

        // for (let key in person) {
        //     console.log('@',person[key]);
            
        // }
        
        console.log(person);
        
    </script>
    
</body>
</html>